public List<Table> getTables(final String catalog, final String schemaPattern, final String tableNamePattern,
                                 final String[] types)
            throws SQLException {
        final List<Table> list = new ArrayList<>();
        try (ResultSet results = databaseMetadata.getTables(catalog, schemaPattern, tableNamePattern, types)) {
            if (results != null) {
                bind(results, Table.class, list);
            }
        }
        return list;
    }
public List < Table > getTables ( final String catalog , final String schemaPattern , final String tableNamePattern , final String [ ] types ) throws SQLException { final List < Table > list = new ArrayList < > ( ) ; try ( ResultSet results = databaseMetadata . getTables ( catalog , schemaPattern , tableNamePattern , types ) ) { if ( results != null ) { bind ( results , Table . class , list ) ; } } return list ; }
Invokes {@link DatabaseMetaData#getTables(java.lang.String, java.lang.String, java.lang.String,
java.lang.String[])} with given arguments and returns bound information.

@param catalog          the value for {@code catalog} parameter
@param schemaPattern    the value for {@code schemaPattern} parameter
@param tableNamePattern the value for {@code tableNamePattern} parameter
@param types            the value for {@code types} parameter
@return a list of tables
@throws SQLException if a database error occurs.