In the jdbc specification, a view is also a return to a table. We also need to do this in jdbc:
/**
* Retrieves a description of the tables available in the given catalog.
* Only table descriptions matching the catalog, schema, table
* name and type criteria are returned. They are ordered by
* {@code TABLE_TYPE}, {@code TABLE_CAT},
* {@code TABLE_SCHEM} and {@code TABLE_NAME}.
* <P>
* Each table description has the following columns:
* <OL>
* <LI><B>TABLE_CAT</B> String {@code =>} table catalog (may be {@code null})
* <LI><B>TABLE_SCHEM</B> String {@code =>} table schema (may be {@code null})
* <LI><B>TABLE_NAME</B> String {@code =>} table name
* <LI><B>TABLE_TYPE</B> String {@code =>} table type. Typical types are "TABLE",
* "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
* "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
* <LI><B>REMARKS</B> String {@code =>} explanatory comment on the table (may be {@code null})
* <LI><B>TYPE_CAT</B> String {@code =>} the types catalog (may be {@code null})
* <LI><B>TYPE_SCHEM</B> String {@code =>} the types schema (may be {@code null})
* <LI><B>TYPE_NAME</B> String {@code =>} type name (may be {@code null})
* <LI><B>SELF_REFERENCING_COL_NAME</B> String {@code =>} name of the designated
* "identifier" column of a typed table (may be {@code null})
* <LI><B>REF_GENERATION</B> String {@code =>} specifies how values in
* SELF_REFERENCING_COL_NAME are created. Values are
* "SYSTEM", "USER", "DERIVED". (may be {@code null})
* </OL>
*
* <P><B>Note:</B> Some databases may not return information for
* all tables.
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* {@code null} means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* {@code null} means that the schema name should not be used to narrow
* the search
* @param tableNamePattern a table name pattern; must match the
* table name as it is stored in the database
* @param types a list of table types, which must be from the list of table types
* returned from {@link #getTableTypes},to include; {@code null} returns
* all types
* @return {@code ResultSet} - each row is a table description
* @throws SQLException if a database access error occurs
* @see #getSearchStringEscape
*/
ResultSet getTables(String catalog, String schemaPattern,
String tableNamePattern, String types[]) throws SQLException;
In the jdbc specification, a view is also a return to a table. We also need to do this in jdbc: