Pour vérifier si une table existe, vous pouvez utiliser DatabaseMetaData de cette manière :
DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getTables(null, null, "table_name", null);
if (rs.next()) {
//Table Exist
}
Et pour vérifier si une colonne existe vous pouvez l'utiliser de la même manière :
DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getColumns(null, null, "table_name", "column_name");
if (rs.next()) {
//Column in table exist
}