Dependence and dependency can both be used in the state/condition of being dependent sense. By definition, all words referencing such "states" are abstract nouns, so I don't see any justification for OP's abstract/concrete distinction in that sense. As you can see from this NGram, dependency has gained ground in recent decades, but both are in common use.
The main usage difference is that dependency can be used in a second sense as a "concrete" noun to mean a person or thing which depends on something/someone else. But note that in the programming context it's not uncommon to see it used to mean a software resource upon which some piece of software depends (i.e. - reversing the need/provide relationship).
In principle, dependence could also be used with that second sense - but as OED points out, all such usages are now either obsolete or archaic.
TL;DR: If you want the easy way out (which looks like the way majority usage is going anyway), you can probably get away with using dependency all the time.
But I must be honest - as a native speaker I'd probably tend to refer to his drug dependency, but his dependence on drugs (maybe because I see one as a problem he has, and the other as something he's doing, I don't know).