code: protected void seekToPresentRow(long currentRow) throws IOException {
      if (currentRow != previousPresentRow + 1) {
        long rowInStripe = currentRow - rowBaseInStripe - 1;
        int rowIndexEntry = computeRowIndexEntry(currentRow);
        if (rowIndexEntry != computeRowIndexEntry(previousPresentRow) ||
            currentRow < previousPresentRow) {
          // Since we're resetting numNulls we need to seek to the appropriate row not just in the
          // present stream, but in all streams for the column
          seek(rowIndexEntry, currentRow < previousPresentRow);
          numNonNulls = countNonNulls(rowInStripe - (rowIndexEntry * rowIndexStride));
        } else {
          numNonNulls += countNonNulls(currentRow - previousPresentRow - 1);
        }
      }
  
      // If this is the first row in a row index stride update the number of non-null values to 0
      if ((currentRow - rowBaseInStripe - 1) % rowIndexStride == 0) {
        numNonNulls = 0;
      }
  
      previousPresentRow = currentRow;
    }
docs: Shifts only the present stream so that next will return the value for currentRow
  
  @param currentRow
  @throws IOException