Para verificar se existe uma tabela, você pode usar DatabaseMetaData desta maneira :
DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getTables(null, null, "table_name", null);
if (rs.next()) {
//Table Exist
}
E para verificar se existe uma coluna, você pode usá-la de maneira semelhante:
DatabaseMetaData md = connection.getMetaData();
ResultSet rs = md.getColumns(null, null, "table_name", "column_name");
if (rs.next()) {
//Column in table exist
}