code: public void listAll(final String orderBy, final SuccessCallback<List<T>> successCallback, final ErrorCallback errorCallback) {
          checkNotNull(successCallback);
          checkNotNull(errorCallback);
  
          final Callable<List<T>> call = new Callable<List<T>>() {
              @Override
              public List<T> call() throws Exception {
                  return SugarRecord.listAll(getSugarClass(), orderBy);
              }
          };
  
          final Future<List<T>> future = doInBackground(call);
          List<T> objects;
  
          try {
              objects = future.get();
  
              if (null == objects || objects.isEmpty()) {
                  errorCallback.onError(new Exception("There are no objects in the database"));
              } else {
                  successCallback.onSuccess(objects);
              }
  
          } catch (Exception e) {
              errorCallback.onError(e);
          }
      }
docs: Method that list all elements. It run a SugarRecord.listAll but it's code is performed asynchronously
  with the usage of Futures and callbacks.
  
  @param orderBy the way you want to order the objects you get
  @param successCallback the callback that is performed if the operation is successful
  @param errorCallback the callback that is performed if your code has an error