if (naturalOrder) {
reader = getNativeReader(propertyNames, filter, startIndex, maxFeatures, screenMap);
} else {
reader = getNativeReader(propertyNames, filter, null, null, screenMap);
// sorting
reader = new SortedFeatureReader(DataUtilities.simple(reader), query);
if (startIndex > 0) {
// skip the first n records
for (int i = 0; i < startIndex && reader.hasNext(); i++) {
reader.next();
}