If it says sulfate free on the bottle, that's why it's not foaming up. Sulfates are surfactants, meaning they're the part of the shampoo that 1) causes it to lather, and 2) allows the oil in your hair to temporarily mix with water and be washed out. Sulfates are sometimes a little too good at their jobs, though, and can dry your hair out, especially if you wash your hair every day (which you shouldn't, but a lot of people do). Sulfate free shampoos don't lather much, but still clean your hair; you just have to scrub your scalp a little more than you'd need to with a shampoo containing sulfates.
Also, your hair might be oily because of how often you wash it. If you wash your hair every day, you're stripping away the natural oil your scalp produces to moisturize your skin which leads to dry hair, and a scalp that over-produces oil to compensate for how quickly it's being removed. If you wash your hair less often (every other day or every two days), your scalp will start to adjust and produce less oil. In the meantime, invest in some dry shampoo to keep your roots from looking really oily, and maybe a boar bristle brush to help distribute the oil evenly throughout your hair.