code: @Override
      public String[] readLine(int line, boolean readResult) throws TechnicalException {
          String sqlRequest;
          try {
              final Path file = Paths.get(dataInPath + scenarioName + ".sql");
              sqlRequest = new String(Files.readAllBytes(file), Charset.forName(Constants.DEFAULT_ENDODING));
              sqlSanitized4readOnly(sqlRequest);
          } catch (final IOException e) {
              throw new TechnicalException(Messages.getMessage(TechnicalException.TECHNICAL_ERROR_MESSAGE) + e.getMessage(), e);
          }
          try (Connection connection = getConnection(); PreparedStatement statement = connection.prepareStatement(sqlRequest); ResultSet rs = statement.executeQuery();) {
              final String[] ret = readResult ? new String[columns.size()] : new String[columns.size() - 1];
              if (line == 0) {
                  for (int i = 0; i < ret.length; i++) {
                      ret[i] = columns.get(i);
                  }
              } else {
                  while (rs.next() && rs.getRow() < line) {
                  }
                  for (int i = 1; i <= ret.length; i++) {
                      ret[i - 1] = rs.getString(i);
                  }
              }
              return ret;
          } catch (final SQLException e) {
              logger.debug("In DBDataProvider, this catch aims for testing the end of provided data. DBDataProvider.readLine({}, {})", line, readResult, e);
              return null;
          }
      }
docs: {@inheritDoc}
  
  @throws TechnicalException
  is thrown if you have a technical error (IOException on .sql file) in NoraUi.