private void seekOrSkipToNextColumn(ExtendedCell cell) throws IOException {
    if (!trySkipToNextColumn(cell)) {
      seekAsDirection(matcher.getKeyForNextColumn(cell));
    }
  }
If the top cell won't be flushed into disk, the new top cell may be changed after
#reopenAfterFlush. Because the older top cell only exist in the memstore scanner but the
memstore scanner is replaced by hfile scanner after #reopenAfterFlush. If the row of top cell
is changed, we should return the current cells. Otherwise, we may return the cells across
different rows.
@return null is the top cell doesn't change. Otherwise, the NextState to return
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java