private static List<List<String>> pricerowDataExtractor() throws SQLException {
        List<List<String>> rows = new ArrayList<>();

        String basicProdcatDataQuery = "select upc, avg_price from `products-cpg-nutrition`";

        Connection connection = ConnectionManager.getConnection();
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery(basicProdcatDataQuery);

        // seed is important to have repeatability
        Random random = new Random(1234);

        PromotionDO promotion;
        Double price;

        while (resultSet.next()) {
            for (String store : storeIndexes) {
                ArrayList<String> row = new ArrayList<>();
                //    "Product(code,$catalog_version)[unique=true]" - upc = {885898000079}
                row.add(resultSet.getString("upc"));
                //    "store(groceryStoreNo)[unique=true]" - store number = 420 || 421
                //row.add(Integer.valueOf(df.format((store1 + (store2 - store1) * random.nextDouble()))).toString());
                row.add(store);
                //    "dateRange[unique=true,dateformat=yyyyMMdd]" - date range = 20131127,20990101
                row.add("20131127,20990101");
                //    "minqtd" - QUANTITY =1
                row.add("1");
                //    "price" - generated price = {avg_price}
                price = Double.valueOf(resultSet.getString("avg_price"));
                price *= random.nextDouble() * (1.05 - 0.95) + 0.95;
                price = Math.round(price * 100) / 100.0;
                row.add(price.toString());

                promotion = PromotionDO.getPromotion(price);
                //BEGIN PROMOTION DATA
                //    "promoType" - promotion type = 0[- no promo] || 1 || 2 || 3
                row.add(promotion.getType().toString());
                //    "promoForQuantity" = "1"
                row.add(promotion.getForQuantity().toString());
                //    "promoPrice" - generated price for product with promotion, promo price should be less then general price = {"90.00"}
                row.add(promotion.getPromoPrice());
                //    "promoStart" - start date - "20131120"
                row.add(promotion.getStartDate());
                //    "promoEnd" - end date - "20141212"
                row.add(promotion.getEndDate());
                //    "saveAmount" - amount your saved = "price - promoPrice"
                row.add(promotion.getSaveAmount());
                //    "promoPriceText" - text = "You Save 'saveAmount'"
                row.add(promotion.getPriceText());
                //END PROMOTION DATA


                //"aisleNumber" = {"3"}
                row.add("3");
                //"aisleSide" = {"B"}
                row.add("B");
                //"ageRestriction" = {"0"}
                row.add("0");
                //"crvAmount" = {" 0.30"}
                //Currently, CRV is 5 cents for containers less than 24 ounces and 10 cents for containers 24 ounces or larger.
                if (resultSet.getString("upc").equals("018200002311")) {
                    row.add(" 0.05");
                } else if (resultSet.getString("upc").equals("074682103502") ||
                        resultSet.getString("upc").equals("799210375021")) {
                    row.add(" 0.10");
                } else {
                    row.add("");
                }

                //"salesTaxRate" = {" 0.08500"}
                row.add(" 0.08500");

                // necessary for demo
                // two products will be not available in one store
                if (!store.equals("420") &&
                        ((resultSet.getString("upc").equals("070569272408")) || (resultSet.getString("upc").equals("072310008236")))) {
                    continue;
                }

                rows.add(row);
            }
        }

        return rows;
    }