docs: public void updateSchema(String migrationPath) {
          try {
              logger.info("Updating schema... ");
              int current_version = 0;
  
              // first check the current schema version
              HashMap<String, Object> configuration = getFirstResult("SELECT * FROM " + Constants.DB_TABLE_CONFIGURATION +
                                                                         " WHERE " + Constants.DB_TABLE_CONFIGURATION_NAME + " = \'" + Constants.DB_TABLE_CONFIGURATION_DATABASE_VERSION + "\'");
  
              if (configuration == null) {
                  logger.info("Creating configuration table..");
                  // create configuration table
                  executeUpdate("CREATE TABLE "
                                    + Constants.DB_TABLE_CONFIGURATION
                                    + " (" + Constants.GENERIC_ID + " INTEGER IDENTITY,"
                                    + Constants.DB_TABLE_CONFIGURATION_NAME + " VARCHAR(256),"
                                    + Constants.DB_TABLE_CONFIGURATION_VALUE + " VARCHAR(1024));");
  
                  executeUpdate("INSERT INTO " + Constants.DB_TABLE_CONFIGURATION
                                    + "(" + Constants.DB_TABLE_CONFIGURATION_NAME + "," + Constants.DB_TABLE_CONFIGURATION_VALUE + ")"
                                    + " VALUES (\'"
                                    + Constants.DB_TABLE_CONFIGURATION_DATABASE_VERSION
                                    + "\', '0');");
              } else {
                  logger.info("Getting current schema version..");
                  // get current version
                  current_version = new Integer(configuration.get("VALUE").toString());
                  logger.info("Current schema version is {}", current_version);
              }
  
              // loop through until we get up to the right schema version
              while (current_version < Constants.DB_CURRENT_SCHEMA_VERSION) {
                  current_version++;
  
                  // look for a schema file for this version
                  logger.info("Updating to schema version {}", current_version);
                  String currentFile = migrationPath + "/schema."
                      + current_version;
                  Resource migFile = new ClassPathResource(currentFile);
                  BufferedReader in = new BufferedReader(new InputStreamReader(
                      migFile.getInputStream()));
  
                  String str;
                  while ((str = in.readLine()) != null) {
                      // execute each line
                      if (str.length() > 0) {
                          executeUpdate(str);
                      }
                  }
                  in.close();
              }
  
              // update the configuration table with the correct version
              executeUpdate("UPDATE " + Constants.DB_TABLE_CONFIGURATION
                                + " SET " + Constants.DB_TABLE_CONFIGURATION_VALUE + "='" + current_version
                                + "' WHERE " + Constants.DB_TABLE_CONFIGURATION_NAME + "='"
                                + Constants.DB_TABLE_CONFIGURATION_DATABASE_VERSION + "';");
          } catch (Exception e) {
              logger.info("Error in executeUpdate");
              e.printStackTrace();
          }
      }