Hola,
Habría que aclarar que significa 'base de datos', suponiendo que sea un 'schema' o 'database' en términos de SQL entonces podrías usar lenguaje DDL y los catálogos de metadatos.
Por ejemplo en Microsoft SQL Server:
Código SQL:
Ver originalSELECT * FROM sysobjects WHERE name LIKE '%NOMBRE%'
Eso te devuelve los objetos del motor que tengan ese NOMBRE, incluyendo bases de datos, tablas, etc.
Seguidamente si ese ResultSet no devuelve nada entonces puedes crearla:
En MySQL existen opciones específicas:
Y de allí en adelante crear las tablas, indices, vistas, etc.
Código SQL:
Ver originalCREATE TABLE NOMBRE.TABLA (id INT, DATA VARCHAR(80))
Todos los motores de base de datos como MySQL, Oracle, PostgreSQL, etc., tienen un mecanismo para consultar la metadata (los objetos que existen en la base de datos) y para crearlos si no existen (lenguaje DDL y SQL). Para consultar usas los Resultset de java y para ejecutar usas un preparedStatement o callableStatement como cualquier otra instrucción SQL.
Con lo que seguramente vas a pelear un rato va a ser con los permisos, en Microsoft SQL Server existen los procedimientos almacenados extendidos que facilitan esos procedimientos, mientras que otros motores son mas complicados.
Busca información sobre 'sql metadata catalog' y 'DDL Language' en el motor de base de datos que estés usando. Si lo que deseas es saber si una base de datos está instalada y sino instalarla o algo parecido usa SQLite como indica CapacProg o busca información sobre 'embedded database'.
Saludos,