public void addToDb(Context context, WorkoutGoal workoutGoal, WorkoutProfile workoutProfile) {
    final WorkoutDbHelper dbHelper = new WorkoutDbHelper(context);

    // Create new Goal row in DB
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(DbContract.GoalEntry.COLUMN_NAME_GOAL_TYPE, workoutGoal.getGoalType().number());
    values.put(DbContract.GoalEntry.COLUMN_NAME_LIFT_TYPE, workoutGoal.getLiftType().number());
    values.put(
        DbContract.GoalEntry.COLUMN_NAME_START_DATE,
        DateTimeFormatHelper.dateTimeToString(workoutGoal.getStartDate()));
    values.put(
        DbContract.GoalEntry.COLUMN_NAME_END_DATE,
        DateTimeFormatHelper.dateTimeToString(workoutGoal.getEndDate()));
    values.put(DbContract.GoalEntry.COLUMN_NAME_START_VALUE, workoutGoal.getStart());
    values.put(DbContract.GoalEntry.COLUMN_NAME_LIFT_REPS, workoutGoal.getLiftReps());
    values.put(DbContract.GoalEntry.COLUMN_NAME_TARGET_VALUE, workoutGoal.getTarget());
    values.put(DbContract.GoalEntry.COLUMN_NAME_CURRENT_VALUE, workoutGoal.getCurrent());
    values.put(DbContract.GoalEntry.COLUMN_NAME_PROFILE, workoutGoal.getProfile().getId());

    db.insert(
        DbContract.ProfileEntry.TABLE_NAME, DbContract.ProfileEntry.COLUMN_NAME_HISTORY, values);
    db.close();
  }
  public ArrayList<WorkoutGoal> getProfileGoals(Context context, WorkoutProfile workoutProfile) {
    // Instantiate list of workoutGoals
    ArrayList<WorkoutGoal> workoutGoals = new ArrayList<>();
    WorkoutGoal workoutGoal;

    // Get database as readable
    final WorkoutDbHelper dbHelper = new WorkoutDbHelper(context);
    SQLiteDatabase db = dbHelper.getReadableDatabase();

    // ======================= Get Goals ========================
    // Columns to get
    String[] projection = {
      DbContract.GoalEntry.COLUMN_NAME_ID,
      DbContract.GoalEntry.COLUMN_NAME_PROFILE,
      DbContract.GoalEntry.COLUMN_NAME_GOAL_TYPE,
      DbContract.GoalEntry.COLUMN_NAME_LIFT_TYPE,
      DbContract.GoalEntry.COLUMN_NAME_LIFT_REPS,
      DbContract.GoalEntry.COLUMN_NAME_START_DATE,
      DbContract.GoalEntry.COLUMN_NAME_END_DATE,
      DbContract.GoalEntry.COLUMN_NAME_START_VALUE,
      DbContract.GoalEntry.COLUMN_NAME_CURRENT_VALUE,
      DbContract.GoalEntry.COLUMN_NAME_TARGET_VALUE
    };

    // Column in WHERE clause
    String selection = DbContract.GoalEntry.COLUMN_NAME_PROFILE + "=?";

    // Value in WHERE clause
    String[] selectionArgs = {workoutProfile.getId().toString()};

    // Sorting criteria
    String sortOrder = DbContract.GoalEntry.COLUMN_NAME_START_DATE + " DESC";

    // Create Cursor from database query
    Cursor cursor =
        db.query(
            DbContract.GoalEntry.TABLE_NAME,
            projection,
            selection,
            selectionArgs,
            null,
            null,
            sortOrder);

    // Move cursor to first (only) Goal result
    cursor.moveToFirst();

    while (!cursor.isAfterLast()) {
      // Instantiate goal from database information and add to list
      int goalTypeInt =
          cursor.getInt(cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_GOAL_TYPE));
      GoalType goalType = GoalType.values()[goalTypeInt];

      int liftTypeInt =
          cursor.getInt(cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_LIFT_TYPE));
      LiftType liftType = LiftType.values()[liftTypeInt];

      int id = cursor.getInt(cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_ID));
      int liftReps =
          cursor.getInt(cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_LIFT_REPS));
      int startVal =
          cursor.getInt(cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_START_VALUE));
      int currentVal =
          cursor.getInt(
              cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_CURRENT_VALUE));
      int targetVal =
          cursor.getInt(
              cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_TARGET_VALUE));
      DateTime startDate =
          DateTimeFormatHelper.stringToDateTime(
              cursor.getString(
                  cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_START_DATE)));
      DateTime endDate =
          DateTimeFormatHelper.stringToDateTime(
              cursor.getString(
                  cursor.getColumnIndexOrThrow(DbContract.GoalEntry.COLUMN_NAME_END_DATE)));

      WorkoutGoal.Factory workoutGoalFactory = new WorkoutGoal.Factory();
      workoutGoalFactory
          .setId(id)
          .setCurrent(currentVal)
          .setTarget(targetVal)
          .setStart(startVal)
          .setEndDate(endDate)
          .setStartDate(startDate)
          .setGoalType(goalType)
          .setLiftType(liftType)
          .setLiftReps(liftReps)
          .setProfile(workoutProfile);
      workoutGoal = new WorkoutGoal(workoutGoalFactory);
      workoutGoals.add(workoutGoal);
    }

    return workoutGoals;
  }