public static void loadSQLStatements(List<SQLStatement> sqlStatementsToLoad) {

        Connection connection = null;
        try {
            connection = ConnectionPoolUtils.getConnectionFromPool();
            if (connection == null) {
                // just for testability: during normal execution we will never get here. But the unit tests are
                // running without a database
                return;
            }

            PreparedStatement sqlTextStatement = connection.prepareStatement(SELECT_SQL_TEXT_FOR_200_STATEMENTS);
            sqlTextStatement.setFetchSize(1000);

            int indexPlaceholder = 1;
            for (SQLStatement currentStatement : sqlStatementsToLoad) {
                sqlTextStatement.setString(indexPlaceholder, currentStatement.getSqlId());
                indexPlaceholder++;

                if (indexPlaceholder > NUMBER_BIND_VARIABLES_SELECT_SQL_TEXT) {
                    // all place holders are filled - so fetch the sql text from the db
                    getTextFromDB(sqlTextStatement);

                    indexPlaceholder = 1;
                }
            }

            if (indexPlaceholder > 1) {
                // there are some statements left...
                // fill the empty bind variables with invalid IDs
                for (int index = indexPlaceholder; index <= NUMBER_BIND_VARIABLES_SELECT_SQL_TEXT; index++) {
                    sqlTextStatement.setString(index, "");
                }
                getTextFromDB(sqlTextStatement);
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        } finally {
            ConnectionPoolUtils.returnConnectionToPool(connection);
        }
    }