code: public <V> List<V> executeScalarList(Class<V> returnType) {
          try (ResultSet rs = executeQuery()) {
              List<V> values = new ArrayList<>();
              while (rs.next()) {
                  values.add(getScalarFromResultSet(rs, returnType));
              }
              return values;
          } catch (SQLException ex) {
              throw new ApplicationException(Code.BACKEND_ERROR, ex);
          }
      }
docs: Execute the PreparedStatement and return a List of 'primitive' values from the ResultSet.
  
  @param returnType The type Class return a List of.
  @param <V> The type parameter to return a List of.
  @return A {@code List<returnType>}.
  
  @throws ApplicationException {@literal returnType} is unsupported, cannot be cast to from the result, or any SQL
  errors occur.