1. A method for operating a non-volatile storage system, comprising: performing at least one programming iteration in which a program pulse is applied to a selected word line, the selected word line is in communication with a subset of storage elements in a set of storage elements which is formed on a substrate, and the selected word line is one word line of a plurality of word lines which are in communication with the set of storage elements; and prior to applying the program pulse, determining that a first unselected storage element in the subset of storage elements has a data state which is in a first group of one or more data states, determining that a second unselected storage element in the subset of storage elements has a data state which is in a second group of one or more data states, boosting a first channel region of the substrate which is associated with the first unselected storage element using a first boosting scheme associated with the first group, and boosting a second channel region of the substrate which is associated with the second unselected storage element using a second boosting scheme associated with the second group.