@NonNull
    private static Trackable createTrackableFromDatabaseContent(final Cursor cursor) {
        try {
            final Trackable trackable = new Trackable();
            trackable.setGeocode(cursor.getString(cursor.getColumnIndexOrThrow("tbcode")));
            trackable.setGuid(cursor.getString(cursor.getColumnIndexOrThrow("guid")));
            trackable.setName(cursor.getString(cursor.getColumnIndexOrThrow("title")));
            trackable.setOwner(cursor.getString(cursor.getColumnIndexOrThrow("owner")));
            trackable.setReleased(getDate(cursor, "released"));
            trackable.setGoal(cursor.getString(cursor.getColumnIndexOrThrow("goal")));
            trackable.setDetails(cursor.getString(cursor.getColumnIndexOrThrow("description")));
            trackable.setLogDate(getDate(cursor, "log_date"));
            trackable.setLogType(LogType.getById(cursor.getInt(cursor.getColumnIndexOrThrow("log_type"))));
            trackable.setLogGuid(cursor.getString(cursor.getColumnIndexOrThrow("log_guid")));
            trackable.setLogs(loadLogs(trackable.getGeocode()));
            return trackable;
        } catch (final IllegalArgumentException e) {
            Log.e("IllegalArgumentException in createTrackableFromDatabaseContent", e);
            return null;
        }
    }
@return an immutable, non null list of logs
main/src/main/java/cgeo/geocaching/storage/DataStore.java