Ok so let's see if we can't narrow down villain's range here. He called your preflop raise, so that means he's on what he considers at least a decent hand. You say he's approaching LAP, so that will increase his range somewhat. If he's slightly aggressive, then I think he will be raising with certain hands instead of just calling.
So let's break it down. Hands that are in his range that have you beat right now: AJ, KJ, QJ, JJ, J10. J9 is unlikely given that you have 2 of the 9s already. JJ he would most likely raise with I imagine, given that he is somewhat aggressive, so we can probably throw that out. Same as 88 and 55.
Any other pocket pair that is probably 66+ is fair game still, other than 88, 99 and JJ.
If he's loose, then I would certainly say that 56, 67, 78 and 89s are all in his range here, at which point you are ahead for the moment.
Is this player a solid enough player to not go chasing a flush without the odds
to do so? A $2 flop bet into a pot of $2.60 won't give him the odds to call here. If he's solid enough to fold on a draw, then we can eliminate the flush from his range, since he would not have called the flop bet.
So I think we can narrow his range down to straight draws, and top pair with a flush redraw, or two pair if he is playing gap connectors.
I think we are behind here, but we have a ton of outs. Double belly buster straight draw is 6, 7 remaining hearts, 2 more 9s, so thats 15 outs. We have to be careful with the hearts, because we may not be ahead in that case (unless it's the 10, and then we want him to have the A).
I think we have 2 options here. We can make a value bet and see where we stand. Or we can check/raise him if/when he bets. Personally, I don't like the check/raise option because he can come over the top and then we are in a pickle. I think I make a value bet of like $4 here. If he calls, we are most definitely behind but still alive, if he raises, I think we are toast and time to fold.