@Override
    public List<RecipeSection> retrieveSections(Recipe recipe) throws DataStoreException {
        String recipeName = recipe.getName();
        List<RecipeSection> resultList = null;

        try ( Connection conn1 = getConnection();
              Connection conn2 = getConnection();
              ResultSet sections = executeStatement(conn1, "SELECT id, headline, text " +
                      "FROM sections, sections_per_recipe " +
                      "WHERE recipe_name = '" + escapeQuotes(recipeName) + "' " +
                      "AND sections.id = section_id " +
                      "ORDER BY placement ASC") ){

            if(sections != null){
                resultList = new ArrayList<>();
                //Loop through all the sections and create them
                while(sections.next()){
                    int id = sections.getInt("id");
                    String headline =sections.getString("headline");
                    String text = sections.getString("text");
                    List<RecipeIngredient> ingredientList = new LinkedList<>();

                    String statement = "SELECT ingredients.name_singular AS name_singular, " +
                            "name_plural, common, suffix, prefix " +
                            "FROM ingredients, ingredients_per_section " +
                            "WHERE section_id = " + id +
                            " AND ingredients.name_singular = ingredients_per_section.name_singular";

                    ResultSet ingredients = executeStatement(conn2, statement);

                    if(ingredients != null){
                        while(ingredients.next()){
                            //Setup Ingredient
                            String nameSingular = ingredients.getString("name_singular");
                            String namePlural = ingredients.getString("name_plural");
                            boolean common = ingredients.getBoolean("common");
                            Ingredient ingredient = new Ingredient(nameSingular, namePlural, common);

                            //Setup RecipeIngredient
                            String suffix = ingredients.getString("suffix");
                            String prefix = ingredients.getString("prefix");
                            try{
                                RecipeIngredient recipeIngredient = new RecipeIngredient(prefix, ingredient, suffix);
                                ingredientList.add(recipeIngredient);
                            } catch (IllegalArgumentException e){
                                throw new DataStoreException("Could not create RecipeIngredient from the data retrieved from the store." +
                                        "ingredient: " + ingredient +
                                        ", prefix" + prefix +
                                        ", suffix: " + suffix);
                            }
                        }
                    }
                    resultList.add(new RecipeSection(headline, text, ingredientList));
                }
            }
        }
        catch(SQLException e){
            LOGGER.error("Exception while retrieving sections for recipe (" + recipe.getName() +"): " + e.getMessage());
        }

        return resultList;
    }