code: @Override
      public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive) throws IOException {
          topKey = null;
          topValue = null;
  
          Key sk = range.getStartKey();
  
          if (sk != null
              && sk.getColumnFamilyData().length() == 0
              && sk.getColumnQualifierData().length() == 0
              && sk.getColumnVisibilityData().length() == 0
              && sk.getTimestamp() == Long.MAX_VALUE
              && !range.isStartKeyInclusive()) {
              // assuming that we are seeking using a key previously returned by this iterator therefore go the next row
              Key followingRowKey = sk.followingKey(PartialKey.ROW);
              if (range.getEndKey() != null && followingRowKey.compareTo(range.getEndKey()) > 0) {
                  return;
              }
  
              range = new Range(sk.followingKey(PartialKey.ROW), true, range.getEndKey(), range.isEndKeyInclusive());
          }
  
          sourceIterator.seek(range, columnFamilies, inclusive);
          loadNext();
      }
docs: Copied from {@link org.apache.accumulo.core.iterators.user.RowEncodingIterator}