code: private QueryParameters readResultSetRow(int row) throws SQLException {
          int currentRow = getCurrentResultSet().getRow();
          QueryParameters result = null;
  
          if (currentRow == 0) {
              // before first or last
              if (getCurrentResultSet().isAfterLast() == true) {
                  // positioning on last
                  getCurrentResultSet().last();
              } else if (getCurrentResultSet().isBeforeFirst() == true) {
                  // position on first
                  getCurrentResultSet().first();
              } else {
                  throw new MjdbcRuntimeException("ResultSet need to be repositioned to get row different than zero");
              }
  
              currentRow = getCurrentResultSet().getRow();
          }
  
          if (currentRow == row) {
              result = convertResultSetCurrentLine(getCurrentResultSet());
          }
          if (useRelativePositioning == true) {
  
              getCurrentResultSet().relative(row - currentRow);
  
              if (getCurrentResultSet().getRow() > 0) {
                  result = convertResultSetCurrentLine(getCurrentResultSet());
              }
          } else if (currentRow < row) {
              while (getCurrentResultSet().next() == true) {
                  if (getCurrentResultSet().getRow() == row) {
                      result = convertResultSetCurrentLine(getCurrentResultSet());
                  }
              }
          } else {
              while (getCurrentResultSet().previous() == true) {
                  if (getCurrentResultSet().getRow() == row) {
                      result = convertResultSetCurrentLine(getCurrentResultSet());
                  }
              }
          }
  
          return result;
      }
docs: This is reference implementation of universal read function for scrollable ResultSets.
  <p/>
  Currently it is unoptimized, due to possible compatibility issues.
  
  @param row row which should be read
  @return read value
  @throws SQLException