@Nullable
    public static List<Category> loadCategories(final String geocode) {
        if (StringUtils.isBlank(geocode)) {
            return null;
        }

        return withAccessLock(() -> queryToColl(dbTableCategories,
                new String[]{"category"},
                "geocode = ?",
                new String[]{geocode},
                null,
                "100",
                new LinkedList<>(),
                cursor -> Category.getByName(cursor.getString(0))));
    }
creates a Cache from the cursor. Doesn't next.

@return Cache from DB
main/src/main/java/cgeo/geocaching/storage/DataStore.java