code: public static final <T> T dropTableIfExists(
              JdbcOperations jdbcOperations,
              final String table,
              final Function<JdbcOperations, T> preDropCallback) {
          LOGGER.info("Dropping table: " + table);
  
          final boolean tableExists = doesTableExist(jdbcOperations, table);
  
          if (tableExists) {
              final T ret = preDropCallback.apply(jdbcOperations);
              jdbcOperations.execute("DROP TABLE " + table);
              return ret;
          }
  
          return null;
      }
docs: Check if the named table exists, if it does drop it, calling the preDropCallback first
  
  @param jdbcOperations {@link JdbcOperations} used to check if the table exists and execute
  the drop
  @param table The name of the table to drop, case insensitive
  @param preDropCallback The callback to execute immediately before the table is dropped
  @return The result returned from the callback