code: public static void executePreparationScripts(final Connection connection, final File[] sqlScripts) throws IOException, SQLException {
          LOG.info("Executing provided SQL scripts...");
          if (sqlScripts == null || sqlScripts.length == 0) {
              LOG.info("No SQL script was provided.");
              return;
          }
          final ScriptRunner scriptRunner = new ScriptRunner(connection, true, true);
          scriptRunner.setErrorLogWriter(new NullPrintWriter());
          scriptRunner.setLogWriter(new NullPrintWriter());
          for (final File sqlScript : sqlScripts) {
              LOG.info("Processing script " + sqlScript.getAbsolutePath());
              try {
                  scriptRunner.runScript(new BufferedReader(new FileReader(sqlScript)));
                  LOG.info("Script finished successfully.");
              } catch (IOException e) {
                  if (e.getCause() instanceof SQLException) {
                      LOG.error("SQL execution failed", e);
                      throw (SQLException) e.getCause();
                  }
                  LOG.error("Some IO failed while trying to run the script", e);
                  throw e;
              } catch (SQLException e) {
                  LOG.error("SQL execution failed", e);
                  throw e;
              }
          }
      }
docs: Executes the SQL scripts specified in the {@code sqlScripts} parameter.
  The SQL gets split into statements and gets executed via the {@code connection} by a {@link ScriptRunner}. The output from the script runner simply gets
  discarded.
  
  @param connection The JDBC connection to use for script execution
  @param sqlScripts The array containing all sql files that should be executed
  @throws IOException  Gets thrown when a file IO fails
  @throws SQLException Gets thrown when the a part of the SQL could not be executed