code: protected String[] getDatabaseCatalogNames(Database database) throws SQLException, DatabaseException {
          List<String> returnList = new ArrayList<>();
          
          ResultSet catalogs = null;
          
          try {
              if (((AbstractJdbcDatabase) database).jdbcCallsCatalogsSchemas()) {
                  catalogs = ((JdbcConnection) database.getConnection()).getMetaData().getSchemas();
              } else {
                  catalogs = ((JdbcConnection) database.getConnection()).getMetaData().getCatalogs();
              }
              while (catalogs.next()) {
                  if (((AbstractJdbcDatabase) database).jdbcCallsCatalogsSchemas()) {
                      returnList.add(catalogs.getString("TABLE_SCHEM"));
                  } else {
                      returnList.add(catalogs.getString("TABLE_CAT"));
                  }
              }
          } finally {
              if (catalogs != null) {
                  try {
                      catalogs.close();
                  } catch (SQLException ignore) {
                  
                  }
              }
              
          }
          return returnList.toArray(new String[returnList.size()]);
      }
docs: Fetches an array of Strings with the catalog names in the database.
  @param database The database from which to get the schema names
  @return An array of catalog name Strings (May be an empty array)
  @throws SQLException propagated java.sql.SQLException
  @throws DatabaseException if a different problem occurs during the DBMS-specific code